package br.com.unisulcontexto.crud;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless
public class CrudSession<E> implements ICrudSession<E>
{
	@PersistenceContext
	private EntityManager em;
	
	public void insert(E entidade) {
		em.persist(entidade);
	}

	public void update(E entidade) {
		em.merge(entidade);
	}

	public void delete(E entidade) {
		em.remove(em.merge(entidade));
	}
	
	public List<E> listAll(E entidade){
		Query query = em.createQuery("SELECT objeto FROM "
				+ entidade.getClass().getSimpleName() + " objeto");

		return new ArrayList<E>(query.getResultList());
	}
	
	

}

	

